#pragma once

#include "ObjLine.h"
#include "ObjAxis3.h"
#include "ObjWireCube.h"
#include "ObjWireTeapot.h"

class ObjFactory
{
public:
	static ObjFactory* GetInstance();
	virtual ~ObjFactory(void) {};

	virtual ObjLine* CreateLine(Point3f p1, Point3f p2, u32 color) = 0;
	virtual ObjAxis3* CreateAxis3(Point3f origin, float size) = 0;
	virtual ObjWireCube* CreateWireCube(Point3f origin, float size, u32 color) = 0;
	virtual ObjWireTeapot* CreateWireTeapot(Point3f origin, float size, u32 color) = 0;

protected:
	ObjFactory(void) {};

};

